81 research outputs found
Recommended from our members
Systematic techniques for more effective fault localization and program repair
Debugging faulty code is a tedious process that is often quite expensive and can require much manual effort. Developers typically perform debugging in two key steps: (1) fault localization, i.e., identifying the location of faulty line(s) of code; and (2) program repair, i.e., modifying the code to remove the fault(s). Automating debugging to reduce its cost has been the focus of a number of research projects during the last decade, which have introduced a variety of techniques.
However, existing techniques suffer from two basic limitations. One, they lack accuracy to handle real programs. Two, they focus on automating only one of the two key steps, thereby leaving the other key step to the developer.
Our thesis is that an approach that integrates systematic search based on state-of-the-art constraint solvers with techniques to analyze artifacts that describe application specific properties and behaviors, provides the basis for developing more effective debugging techniques. We focus on faults in programs that operate on structurally complex inputs, such as heap-allocated data or relational databases.
Our approach lays the foundation for a unified framework for localization and repair of faults in programs. We embody our thesis in a suite of integrated techniques based on propositional satisfiability solving, correctness specifications analysis, test-spectra analysis, and rule-learning algorithms from machine learning, implement them as a prototype tool-set, and evaluate them using several subject programs.Electrical and Computer Engineerin
Re: Controversies in Odontogenic Tumours Review
Letter to the Edito
Assumption Generation for the Verification of Learning-Enabled Autonomous Systems
Providing safety guarantees for autonomous systems is difficult as these
systems operate in complex environments that require the use of
learning-enabled components, such as deep neural networks (DNNs) for visual
perception. DNNs are hard to analyze due to their size (they can have thousands
or millions of parameters), lack of formal specifications (DNNs are typically
learnt from labeled data, in the absence of any formal requirements), and
sensitivity to small changes in the environment. We present an assume-guarantee
style compositional approach for the formal verification of system-level safety
properties of such autonomous systems. Our insight is that we can analyze the
system in the absence of the DNN perception components by automatically
synthesizing assumptions on the DNN behaviour that guarantee the satisfaction
of the required safety properties. The synthesized assumptions are the weakest
in the sense that they characterize the output sequences of all the possible
DNNs that, plugged into the autonomous system, guarantee the required safety
properties. The assumptions can be leveraged as run-time monitors over a
deployed DNN to guarantee the safety of the overall system; they can also be
mined to extract local specifications for use during training and testing of
DNNs. We illustrate our approach on a case study taken from the autonomous
airplanes domain that uses a complex DNN for perception
NEUROSPF: A tool for the Symbolic Analysis of Neural Networks
This paper presents NEUROSPF, a tool for the symbolic analysis of neural
networks. Given a trained neural network model, the tool extracts the
architecture and model parameters and translates them into a Java
representation that is amenable for analysis using the Symbolic PathFinder
symbolic execution tool. Notably, NEUROSPF encodes specialized peer classes for
parsing the model's parameters, thereby enabling efficient analysis. With
NEUROSPF the user has the flexibility to specify either the inputs or the
network internal parameters as symbolic, promoting the application of program
analysis and testing approaches from software engineering to the field of
machine learning. For instance, NEUROSPF can be used for coverage-based testing
and test generation, finding adversarial examples and also constraint-based
repair of neural networks, thus improving the reliability of neural networks
and of the applications that use them. Video URL: https://youtu.be/seal8fG78L
- …